The present invention relates in general to emulation of computer peripheral devices and, in particular, to emulating persistent storage of data in peripheral devices having data storage capabilities.
When constructing data processing or communication equipment, it is generally desirable to emulate the operation of various components and the interaction of these components with each other before all such components are available for actual physical testing. Such emulation generally enables the identification of potential fault conditions to be identified and the exercise of software within host devices designed to identify and respond to fault conditions originating within peripheral or other devices. In addition to enabling testing of system components by emulating such components, emulators generally enable the testing of diagnostic features of a computer system by deliberately injecting invalid data into the system to prompt for a response by diagnostic elements of a computer system.
Emulation is commonly accomplished through the use of an emulating computer connected to a computer system under test. Various components of the computer under test may be emulated by the emulating computer which may be coupled to the computer under test employing standard communication mechanisms. One such component is that of data storage, and in particular, non-volatile data storage. Generally, emulation of non-volatile computer storage computer storage is accomplished by employing data storage equipment already employed for the ongoing operation of the emulating computer. In this case however, the emulated data storage operations compete for resources, within the emulating device, with the data storage requirements of the emulating computer""s operating system, thereby limiting the effectiveness of this approach to data storage emulation.
FIG. 1 is a block diagram 100 depicting a system for emulating host device data storage equipment according to a prior art solution. It may be seen that host device 101 communicates with conventional emulator 102 via communication line 104. Internal shared storage 103 is the storage available for emulation in the system of FIG. 1. Generally, internal shared storage is provided by standard non-volatile computer storage equipment, such as a hard disk drive. Generally, emulator 102, which may be a general purpose computer, uses storage 103 for its own purposes, including storage of its own operating system, application programs, log files, and other miscellaneous data. Accordingly, any use of shared storage 103 for the purpose of emulating host device storage equipment must generally compete with the above-stated needs of emulator 102, thereby limiting the resources available for emulation purposes.
Generally, at the conclusion of each emulation operation, the data stored in an appropriately designated portion of the shared memory 103 is reset in preparation for a subsequent emulation operation. Accordingly, any emulation related data stored in the shared memory is generally lost once a particular emulation session has concluded. Thereafter, if the host device wishes to emulate a return to the storage device which was previously emulated, all data associated the previous emulation operation will have generally been deleted, thereby defeating an ability to emulate a normal resumption of interaction of the host device with the first storage device, after having accessed one or more other storage devices.
In addition, the sharing of data storage resources in prior art systems tends to make it difficult to determine in advance how much data in shared storage 103 is available for host device storage device emulation. Moreover, the sharing of the available capacity in shared resource 103 will generally prevent the emulation process from employing the full capacity of shared resource 103 for emulation purposes. Accordingly, the emulation of host device 101 storage devices will generally be limited to storage equipment of modest storage capacity in order to abide by the limitations imposed the need to share resources with emulator 102.
Accordingly, it is a problem in the art that storage resources employed for emulating host device storage equipment are generally shared with equipment employed for emulating logical operation of the host device storage equipment.
It is a further problem in the art that emulation data stored during an initial emulation session is generally reset upon conclusion of the initial session, thereby preventing emulation of a normal resumption of access to an actual host device storage device.
It is a still further problem in the art that the sharing of data storage resources with emulation equipment generally limits the data storage capacity of equipment which may be emulated employing the systems of the prior art.
The present invention is directed to a system and method which provides persistent non-volatile dedicated emulated storage for enabling emulation of storage equipment which may be intermittently accessed and cycled through various power conditions. The inventive approach preferably dedicates at least one emulating storage device to the emulation of a storage device to be emulated, wherein the dedicated storage device is enabled to provide data storage which remains intact through one or more different emulation operations conducted by an emulator to which the dedicated component is coupled, and one or more possible power cycling operations of the emulated storage device.
In a preferred embodiment, the dedicated device(s) coupled to the emulator to enable more realistic storage device emulation may be a hard disk drive, magneto optic device, tape drive, CD-RW (read-write compact disk), or other non-volatile storage mechanism. Although the emulating device need not be the same as the emulated device (the device native to the host computer), there is generally some advantage in having the characteristics of the two devices approximate one another. For example, when emulating the operation of a 10 megabyte disk drive, use of a disk drive with a capacity approaching 10 megabytes and having other operating characteristics in common with the emulated device will generally provide for a more accurate emulation process.
In a preferred embodiment, the deployment of an emulator, which may be a general purpose computer, as an intermediary device between a host device and one or more emulating devices preferably enables a more seamless emulation process than an arrangement in which the emulating devices are directly coupled to the host device or other external device. Disposing an emulator in between a host device and one or more emulating devices preferably enables the host device to interact seamlessly with the emulating devices. The emulator preferably provides convenient means for transferring control data and storage data from the host device to the one or more emulating storage devices. Moreover, the deployment of an emulator preferably enables a host device, communicating along a single communication line with an emulator, to interact with a substantial number of emulated storage devices.
Accordingly, it is an advantage of a preferred embodiment of the present invention that data stored employing a dedicated emulating storage device will be preserved after emulated power cycling of the storage device being emulated.
It is a further advantage of a preferred embodiment of the present invention that a dedicated storage device coupled to an emulator may be selected and configured so as to enable highly accurate approximation of the characteristics of the device being emulated.
It is a still further advantage of a preferred embodiment of the present invention that a dedicated storage device having a storage capacity closely approximating that of the device being emulated may be selected.
It is a still further advantage of a preferred embodiment of the present invention that the resources available to an emulating dedicated storage device are generally independent of the storage space needed to service the needs of the emulating computer.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. The novel features which are believed to be characteristic of the invention, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present invention.